The formal description of the syntax for derived class types is shown below, with C as the name of the parent class and child_of_C as the name of the derived classes.

type child_of_C is new
    [abstract] class C with
  additional_common_declarations
  {for {variable | constant | signal}
    additional_specific_declarations
  end for;}
end class [child_of_C];

type child_of_C is class body
  common_declarations_of_body
  {for {variable | constant | signal}
    specific_declarations_of_body
  end for;}
end class body [child_of_C];


Within the additional_common_declaration part, declarations of the derived class can be done. Such declarations can be additional attributes, methods for all instantiation modes or redefinitions of methods of the parent class.

Within the additional_specific_declarations part of the derived class type, declarations for the special instantiation modes can be made.

Within the common_declarations_of_body part, the new or redefined methods for all instantiation modes have to be implemented.

Within the specific_declarations_of_body part, the new or redefined methods for the specific instantiation modes have to be implemented.

The common_declarations_of_body part allows to make some private declarations for the derived class.